home *** CD-ROM | disk | FTP | other *** search
- /*
- * Source generated by GenGui V1.0
- * which is (c)1994 by Matthias Meixner
- */
-
- #ifndef _GUI_LAYOUT
- #define _GUI_LAYOUT
-
- #include <exec/types.h>
- #include <libraries/gadtools.h>
- #include <proto/gadtools.h>
-
- #include <intuition/gadgetclass.h>
- #define GL_VBOX -1
- #define GL_HBOX -2
- #define CUSTOM_KIND -3
-
- #define MODE_NEW 0
- #define MODE_RESIZE 1
- #define MODE_REFRESH 2
- #define MODE_FREE 3
- #define MODE_BACKUP 4
- #define MODE_RESTORE 5
-
- #define BOXFLG_CUSTOM 1
- #define BOXFLG_STRING 2
- #define BOXFLG_INTEGER 4
- #define BOXFLG_DISABLED 8
- #define BOXFLG_BACKUP 16
- #define BOXFLG_INITED (1<<15)
-
- #define GetString(g) (((struct StringInfo * )g->SpecialInfo)->Buffer)
- #define GetNumber(g) (((struct StringInfo * )g->SpecialInfo)->LongInt)
- #define GetInfo(g) ((struct GadInfo *)((g)->UserData))
- #define GetUserData(g) (GetInfo(g)->UserData)
-
- struct GadDim {
- int Kind;
- USHORT Rx,Ry,Cx,Cy,Px,Py,SRx,SRy,SPx,SPy;
- USHORT Flags;
- };
-
- struct Box {
- struct GadDim Dim;
- struct Box **Entry;
- };
-
- struct WinInfo {
- struct Box *Box;
- struct Gadget **Gadgets;
- struct Gadget *Prev;
- struct Window *Window;
- struct Gadget *GList;
- int FontX,FontY;
- struct TextAttr TextAttr;
- APTR Visual;
- char Mode,Render;
- USHORT MinX,MinY;
- };
-
- struct GadInfo {
- struct GadDim dim;
- int XSpace,YSpace,GadNum;
- int (*CustomFunc)(struct WinInfo *WInfo,
- struct NewGadget *NewGad,
- struct GadInfo *GadInfo,
- int Left, int Top, int Width, int Height);
- struct TextAttr *TextAttr;
- char *Text;
- int GadgetID;
- ULONG Flags,UserData;
- int(*HookFunc)(struct IntuiMessage *);
- ULONG *Tags;
- ULONG *SaveTags;
- ULONG Code;
- struct Gadget *ThisGad;
- };
-
- int RenderGui(struct Window *win, struct WinInfo *winfo);
- int ResizeGui(struct WinInfo *winfo);
- int RefreshGui(struct WinInfo *winfo);
- void FreeGui(struct WinInfo *winfo);
- void StopGui(struct WinInfo *winfo);
- int SubGui(struct WinInfo *, struct WinInfo *,int ,int ,int , int );
-
- void ClearWindow(struct Window *);
- struct IntuiMessage *Gui_GetIMsg(struct MsgPort *userport,struct IntuiMessage *);
-
- BOOL Gui_SetGadgetAttrs(struct Gadget *,struct Window *,
- struct Requester *, ULONG ,...);
- BOOL Gui_SetGadgetAttrsA(struct Gadget *,struct Window *,
- struct Requester *, ULONG *);
- #endif
-
- #include <proto/graphics.h>
- #define RED 1
- #define GREEN 2
- #define BLUE 3
- int PaletteHook(struct IntuiMessage *msg);
- int RedHook(struct IntuiMessage *msg);
- int GreenHook(struct IntuiMessage *msg);
- int BlueHook(struct IntuiMessage *msg);
- /* We cannot write this function here, since some values of the GUI are
- not declared/defined yet, but we need the prototype */
- int ActiveColor=0;
- int Red;
- int Green;
- int Blue;
- struct Gadget *InnerField_Gadgets[4];
-
- #define InnerField_RED 0
-
- ULONG InnerFieldTags3[]={
- PGA_Freedom,LORIENT_VERT ,GTSL_LevelPlace,PLACETEXT_BELOW ,GTSL_LevelFormat,(ULONG)"%2ld" ,GTSL_MaxLevelLen,2 ,TAG_DONE
- };
-
- struct GadInfo InnerField3={
- SLIDER_KIND,0,1,2,0,4+INTERWIDTH,0+0,0,0,0,0,0,
- INTERWIDTH,INTERHEIGHT,0,NULL,NULL,
- "",RED,0,0,RedHook ,InnerFieldTags3
- };
-
- #define InnerField_GREEN 1
-
- ULONG InnerFieldTags4[]={
- PGA_Freedom,LORIENT_VERT ,GTSL_LevelPlace,PLACETEXT_BELOW ,GTSL_LevelFormat,(ULONG)"%2ld" ,GTSL_MaxLevelLen,2 ,TAG_DONE
- };
-
- struct GadInfo InnerField4={
- SLIDER_KIND,0,1,2,0,4+INTERWIDTH,0+0,0,0,0,0,0,
- INTERWIDTH,INTERHEIGHT,1,NULL,NULL,
- "",GREEN,0,0,GreenHook ,InnerFieldTags4
- };
-
- #define InnerField_BLUE 2
-
- ULONG InnerFieldTags5[]={
- PGA_Freedom,LORIENT_VERT ,GTSL_LevelPlace,PLACETEXT_BELOW ,GTSL_LevelFormat,(ULONG)"%2ld" ,GTSL_MaxLevelLen,2 ,TAG_DONE
- };
-
- struct GadInfo InnerField5={
- SLIDER_KIND,0,1,2,0,4+INTERWIDTH,0+0,0,0,0,0,0,
- INTERWIDTH,INTERHEIGHT,2,NULL,NULL,
- "",BLUE,0,0,BlueHook ,InnerFieldTags5
- };
-
- struct Box *InnerFieldV2[]={
- (struct Box *)&InnerField3,
- (struct Box *)&InnerField4,
- (struct Box *)&InnerField5,
- NULL
- };
-
- struct Box InnerField2={
- GL_HBOX,1,1,0,0,0+0,0+0,0,0,0,0,0,InnerFieldV2
- };
-
- struct Box InnerField6={
- GL_VBOX,1,0,0,1,0+0,4+INTERHEIGHT,0,0,0,0,0,NULL
- };
-
- struct Box *InnerFieldV1[]={
- &InnerField2,
- &InnerField6,
- NULL
- };
-
- struct Box InnerField1={
- GL_VBOX,0,1,3*2,0,2*INTERWIDTH+3*4+INTERWIDTH,0+0,0,0,0,0,0,InnerFieldV1
- };
-
- #define InnerField_0 3
-
- ULONG InnerFieldTags7[]={
- GTPA_Depth,2 ,GTPA_IndicatorWidth,20 ,TAG_DONE
- };
-
- struct GadInfo InnerField7={
- PALETTE_KIND,1,1,0,0,0+0,0+0,0,0,0,0,0,
- INTERWIDTH,INTERHEIGHT,3,NULL,NULL,
- "",0,0,0,PaletteHook ,InnerFieldTags7
- };
-
- struct Box *InnerFieldV0[]={
- &InnerField1,
- (struct Box *)&InnerField7,
- NULL
- };
-
- struct Box InnerField0={
- GL_HBOX,1,1,0,0,0+0,0+0,0,0,0,0,0,InnerFieldV0
- };
-
- struct WinInfo InnerField = {
- &InnerField0,InnerField_Gadgets
- };
-
- int PaletteHook(struct IntuiMessage *msg)
- {
- ULONG rgb;
- if(msg) ActiveColor=msg->Code; // This function is also called from
- rgb=GetRGB4(InnerField.Window->WScreen->ViewPort.ColorMap,ActiveColor);
- Red=rgb>>8;
- rgb&=0xff;
- Green=rgb>>4;
- rgb&=0xf;
- Blue=rgb;
- Gui_SetGadgetAttrs(InnerField_Gadgets[InnerField_RED],InnerField.Window,NULL,
- GTSL_Level,Red,TAG_DONE);
- Gui_SetGadgetAttrs(InnerField_Gadgets[InnerField_GREEN],InnerField.Window,NULL,
- GTSL_Level,Green,TAG_DONE);
- Gui_SetGadgetAttrs(InnerField_Gadgets[InnerField_BLUE],InnerField.Window,NULL,
- GTSL_Level,Blue,TAG_DONE);
- /* IMPORTANT! You must store the values also in the "Code" field of the
- Gadinfo structure, or it would not be vailable for resizing */
- #if 0
- GetInfo(InnerField_Gadgets[InnerField_RED])->Code=Red;
- GetInfo(InnerField_Gadgets[InnerField_GREEN])->Code=Green;
- GetInfo(InnerField_Gadgets[InnerField_BLUE])->Code=Blue;
- #endif
- return(1);
- }
- int RedHook(struct IntuiMessage *msg)
- {
- Red=msg->Code;
- SetRGB4(&InnerField.Window->WScreen->ViewPort,ActiveColor,Red,Green,Blue);
- return(1);
- }
- int GreenHook(struct IntuiMessage *msg)
- {
- Green=msg->Code;
- SetRGB4(&InnerField.Window->WScreen->ViewPort,ActiveColor,Red,Green,Blue);
- return(1);
- }
- int BlueHook(struct IntuiMessage *msg)
- {
- Blue=msg->Code;
- SetRGB4(&InnerField.Window->WScreen->ViewPort,ActiveColor,Red,Green,Blue);
- return(1);
- }
- int Custom(struct WinInfo *winfo,
- struct NewGadget *ng,
- struct GadInfo *gad,
- int left, int top, int width, int height)
- {
- int ret;
- if(winfo->Render) {
- SetAPen(winfo->Window->RPort,0);
- RectFill(winfo->Window->RPort,ng->ng_LeftEdge,ng->ng_TopEdge,
- ng->ng_LeftEdge+ng->ng_Width-1,
- ng->ng_TopEdge+ng->ng_Height-1);
- DrawBevelBox(winfo->Window->RPort,ng->ng_LeftEdge,ng->ng_TopEdge,
- ng->ng_Width,ng->ng_Height,
- GT_VisualInfo,winfo->Visual,TAG_DONE);
- }
- ret=SubGui(winfo,&InnerField,ng->ng_LeftEdge,ng->ng_TopEdge,
- ng->ng_Width,ng->ng_Height);
- if(ret==0 && winfo->Mode==MODE_NEW) { // additional initialisation
- PaletteHook(NULL);
- }
- return(ret);
- }
- struct Gadget *TestPro_Gadgets[3];
-
- #define TestPro_99 0
-
- ULONG TestProTags1[]={
- TAG_DONE
- };
-
- struct GadInfo TestPro1={
- CUSTOM_KIND,1,1,0,0,0+0,0+0,0,0,0,0,BOXFLG_CUSTOM,
- INTERWIDTH,INTERHEIGHT,0,Custom ,NULL,
- "",99,0,0,NULL,TestProTags1
- };
-
- #define TestPro_4 1
-
- ULONG TestProTags3[]={
- TAG_DONE
- };
-
- struct GadInfo TestPro3={
- BUTTON_KIND,1,0,0,1,0+0,4+INTERHEIGHT,0,0,0,0,0,
- INTERWIDTH,INTERHEIGHT,1,NULL,NULL,
- "OK" ,4,0,0,NULL,TestProTags3
- };
-
- struct Box TestPro4={
- GL_VBOX,1,1,0,0,0+0,0+0,0,0,0,0,0,NULL
- };
-
- #define TestPro_5 2
-
- ULONG TestProTags5[]={
- TAG_DONE
- };
-
- struct GadInfo TestPro5={
- BUTTON_KIND,1,0,0,1,0+0,4+INTERHEIGHT,0,0,0,0,0,
- INTERWIDTH,INTERHEIGHT,2,NULL,NULL,
- "Cancel" ,5,0,0,NULL,TestProTags5
- };
-
- struct Box *TestProV2[]={
- (struct Box *)&TestPro3,
- &TestPro4,
- (struct Box *)&TestPro5,
- NULL
- };
-
- struct Box TestPro2={
- GL_HBOX,1,0,0,1,0+0,4+INTERHEIGHT,0,0,0,0,0,TestProV2
- };
-
- struct Box *TestProV0[]={
- (struct Box *)&TestPro1,
- &TestPro2,
- NULL
- };
-
- struct Box TestPro0={
- GL_VBOX,1,1,0,0,0+0,0+0,0,0,0,0,0,TestProV0
- };
-
- struct WinInfo TestPro = {
- &TestPro0,TestPro_Gadgets
- };
-
-